package com.samsung.common.util;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 
 *	@ClassName: DateUtil
 *	@Description: 日期时间处理工具类
 *	@author pu.huang
 *	@date 2015年5月15日 上午11:40:33
 *
 */
public class DateUtil {
    public static final String ENG_DATE_FROMAT = "EEE, d MMM yyyy HH:mm:ss z";  
    public static final String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";  
    public static final String YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm";  
    public static final String YYYY_MM_DD = "yyyy-MM-dd";  
    public static final String YYYY = "yyyy";  
    public static final String MM = "MM";  
    public static final String DD = "dd";

    /**
     * 
    * @Title: parse
    * @Description: 根据给定格式来解析时间字符串
    * @param @param dateString
    * @param @param formatStr
    * @param @return    设定文件
    * @return Date    返回类型
    * @throws
     */
    public static Date parse(String dateString, String formatStr) {  
        Date formateDate = null;  
        DateFormat format = new SimpleDateFormat(formatStr);  
        try {  
            formateDate = format.parse(dateString);  
        } catch (ParseException e) {  
            return null;  
        }  
        return formateDate;  
    }
    
    /**
     * 
    * @Title: format
    * @Description: 根据给点的格式格式化时间
    * @param @param date
    * @param @param formatStr
    * @param @return    设定文件
    * @return String    返回类型
    * @throws
     */
    public static String format(Date date, String formatStr) {  
        String strDate = "";  
        SimpleDateFormat sdf = new SimpleDateFormat(formatStr);  
        strDate = sdf.format(date);  
        return strDate;  
    }
    
	/**
	 * 
	* @Title: formatDate
	* @Description: 格式化日期  yyyy-MM-dd
	* @param @param date
	* @param @return    设定文件
	* @return Date    返回类型
	* @throws
	 */
	public static String formatDate(Date date) {
		return format(date, YYYY_MM_DD);
	}
	
	/**
	 * 
	 * @Title: formatDateTime
	 * @Description: 格式化日期时间   yyyy-MM-dd HH:mm:ss
	 * @param @param date
	 * @param @return    设定文件
	 * @return Date    返回类型
	 * @throws
	 */
	public static String formatDateTime(Date date) {
		return format(date, YYYY_MM_DD_HH_MM_SS);
	}


	/**
	 * 
	* @Title: parseDate
	* @Description: 解析标准日期格式 yyyy-MM-dd
	* @param @param dateString
	* @param @return    设定文件
	* @return Date    返回类型
	* @throws
	 */
	public static Date parseDate(String dateString) {
		return parse(dateString, YYYY_MM_DD);
	}
	
	/**
	 * 
	* @Title: parseDateTime
	* @Description: 解析标准日期时间格式  yyyy-MM-dd HH:mm:ss
	* @param @param dateString
	* @param @return    设定文件
	* @return Date    返回类型
	* @throws
	 */
	public static Date parseDateTime(String dateString) {
		Date formateDate = null;
		DateFormat format = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS);
		try {
			formateDate = format.parse(dateString);
		} catch (ParseException e) {
			return null;
		}
		return formateDate;
	}
	
}
